The present invention is directed to the computer generation of images, and more particularly to the placement of texture on three-dimensional objects.
In the generation of images on a computer, it is desirable to place texture on three-dimensional objects, to enhance surface detail. For example, to generate an image of a globe, a map of the world can be placed on a sphere. Similarly, it may be desirable to place a two-dimensional image of a person from a scanned photograph onto a three-dimensional model of a human head.
Generally speaking, the placement of texture from a two dimensional image onto a three-dimensional object involves mapping appearance values from the image to corresponding locations on the surface of the object. Typically, the appearance values represent color, although they can also pertain to other visual aspects, for example surface perturbations such as bumps or the like. If the texture image is specifically designed for the object, the mapping of the appearance values can be carried out in a straightforward manner and produce an acceptable result. Where the texture image and the three-dimensional object are created independently of one another, however, a direct mapping from the texture image onto the surface of the object may not result in the desired effect. For example, if a scanned photograph of an animal is mapped onto a three-dimensional model of that animal, the size and/or orientation of the animal in the photograph may not correspond with those of the model. In such a case, the texture image must be revised to fit onto the model.
In one approach to this problem, the texture image is globally manipulated by applying user-designated offsets, rotation and scaling. Examples of this approach are described in Rogers, D., Procedural Elements for Computer Graphics, McGraw Hill Book Co., 1985, Section 5-11, pp. 354-355. The purpose of this global manipulation is to resize and reorient the texture image to provide a good fit with the surface of the model. The manipulated texture image is then applied to the three-dimensional model. This approach does not assure that all of the features in the texture image will be aligned with corresponding features on the three-dimensional model, however. For example, if a texture image of a person's face is manipulated so that, overall, the face fits onto a three-dimensional mask, individual features of the face, such as the eyes or the mouth, may not line up exactly with corresponding features on the mask. In such a case, the user may be required to manually repaint portions of the texture image, until the features match. This painting of the image is carried out in a separate two-dimensional window, rather than on the three-dimensional object itself. As a result, this procedure can be tedious, since the changes that need to be made are not always apparent to the user.
In an alternative approach, texture can be painted directly onto the surface of the three-dimensional object. An example of this approach is described in P. Hanrahan et al, "Direct WYSIWYG Painting and Texturing on 3D Shapes", Computer Graphics, Vol. 24, No. 4, August 1990, pp. 215-223. While this technique is useful, it requires painting skills on the part of the user. Furthermore, it does not facilitate the application of pre-existing textures to a new model.
Accordingly, it is desirable to provide a technique which allows users to apply previously scanned or painted images to three-dimensional models, without the need to repaint any portion of the image to align particular features in the texture and the model.